import { computed } from 'vue'

// 每日问候语数组
const DAILY_GREETINGS = [
  '今天是一个美好的工作日，让我们开始高效的一天吧！',
  '新的一天，新的开始，愿您工作愉快！',
  '阳光正好，微风不燥，祝您今天心情舒畅！',
  '每一天都是全新的机会，加油！',
  '愿您今天充满活力，工作顺利！',
  '美好的一天从微笑开始，祝您工作愉快！',
  '今天又是充满可能性的一天，期待您的精彩表现！',
  '新的挑战，新的机遇，祝您今天收获满满！',
  '保持积极的心态，今天一定会很棒！',
  '愿您今天的每个小时都充满成就感！',
  '今天是创造美好回忆的绝佳时机！',
  '带着满满的能量，开启今天的精彩旅程！',
  '每一个努力的今天，都是明天成功的基石！',
  '今天的阳光为您而闪耀，加油！',
  '愿您今天的工作如春风般轻松愉悦！',
  '今天是实现小目标的好日子！',
  '保持好心情，今天注定不平凡！',
  '新的一天，让我们一起创造价值！',
  '今天的您一定会比昨天更优秀！',
  '愿您今天的每一份努力都有回报！',
  '今天是展示才华的舞台，尽情发挥吧！',
  '带着希望出发，今天一定会很精彩！',
  '每一天都是成长的机会，珍惜今天！',
  '今天的努力是为了更好的明天！',
  '愿您今天工作中充满灵感和创意！',
  '新的一天，让我们一起书写精彩篇章！',
  '今天是追逐梦想的又一个起点！',
  '保持热情，今天会带给您惊喜！',
  '愿您今天的付出都能开花结果！',
  '今天又是一个充满希望的开始！'
]

// 根据日期计算问候语索引的函数
const getDailyGreetingIndex = (date: Date): number => {
  // 使用年月日计算一个唯一值
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()

  // 创建一个基于日期的伪随机数
  const seed = year * 10000 + month * 100 + day

  // 使用简单的哈希算法确保分布均匀
  let hash = seed
  hash = ((hash << 5) - hash + seed) & 0xffffffff
  hash = ((hash << 5) - hash + year) & 0xffffffff

  return Math.abs(hash) % DAILY_GREETINGS.length
}

/**
 * 每日问候语Hook
 * 根据当前日期返回不重复的问候语
 */
export const useDailyGreeting = () => {

  // 计算当前日期的问候语
  const dailyGreeting = computed(() => {
    const today = new Date()
    const index = getDailyGreetingIndex(today)
    return DAILY_GREETINGS[index]
  })

  // 获取指定日期的问候语（用于测试或特殊需求）
  const getGreetingByDate = (date: Date): string => {
    const index = getDailyGreetingIndex(date)
    return DAILY_GREETINGS[index]
  }

  // 获取所有问候语（用于管理界面等）
  const getAllGreetings = (): string[] => {
    return [...DAILY_GREETINGS]
  }

  return {
    dailyGreeting,
    getGreetingByDate,
    getAllGreetings
  }
}
